package com.xxx.car.mapper;

import com.xxx.car.entity.*;
import com.xxx.car.entity.vo.request.*;
import com.xxx.car.entity.vo.response.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface ITbMapper {

    List<TbUser> getAppUserByMobile(String mobile);

    int modifyUserPassword(@Param("password") String password, @Param("mobile") String phone);

    List<TbBanner> queryBannerListByApp();

    List<TbBanner> queryBannerListByAdmin();

    Map queryUserTravelOrderDistanceAndAmount(@Param("uid") Integer uid);

    List<TbUser> findUserByIds(@Param("ids") List<Integer> ids);

    List<TbUser> queryAppUserListByAdmin(ReqUserAdminQuery query);

    Integer queryAppNormalUserCount();

    Integer queryAppFrozenUserCount();

    List<TbBanner> queryAdminUserListByAdmin(ReqUserAdminQuery query);

    List<RespInvoice> queryInvoiceAdminList(ReqInvoiceAdminQuery reqInvoiceAdminQuery);

    List<TbRedpacketRecord> queryRedPackageDetail(ReqRedpackageDetail reqRedpackageDetail);

    List<RespAppeal> queryAppealAdminList(ReqAppealAdminQuery query);

    List<TbRefund> queryRefundAdminList(ReqRefundAdminQuery query);

    Map totalRefundAmountAndRefundCount();

    List<RespRefundDetail> selectRefundDetail(ReqRefundAdminQuery query);

    List<RespFeedBack> queryFeedAdminList(ReqFeedAdminQuery query);

    Map totalCompeleteAndUncompelete();

    int updateFeedReply(ReqFeedUpdate update);

    List<TbUser> getAdminUserByUserName(@Param("username") String userName);

    RespTotalConsume queryConsumeTotal(ReqConsumeQuery reqConsumeQuery);

    List<TbUserConsume> queryConsumeList(ReqConsumeQuery reqConsumeQuery);

    RespCarStatisticsTotal queryCarTotal(ReqCarStatistics reqCarStatistics);

    List<TbTravelOrder> queryTravel(ReqCarStatistics reqCarStatistics);
}